package top.kaoshanji.p1ch12d;

import java.lang.reflect.InvocationHandler;

/**
 * 代码清单-p1ch12d-132页c：动态代理的场景类
 * @author kaoshanji
 * ^_^
 * create time 2025/3/22 19:11
 */
public class Client {

    public static void main(String[] args) {

        // 定义一个主题
        Subject subject = new RealSubject();

        // 定义一个 Handler
        InvocationHandler handler = new MyInvocationHandler(subject);

        // 定义主题的代理...创建了代理对象
        Subject proxy = DynamicProxy.newProxyInstance(subject.getClass().getClassLoader(), subject.getClass().getInterfaces(), handler);

        // 代理的行为
        proxy.doSomething("Finish");

    }


}
